System and method for providing improved access to a search tool in electronic mail-enabled applications

ABSTRACT

Disclosed is a system and method for providing users of web-accessible E-mail services with improved access to their E-mail messages and other information. In one embodiment, access to a search tool is provided to users of a web-accessible electronic mail service by software which integrates with a mail-enabled application running on a user&#39;s client machine. The software displays a field within a user interface of the mail-enabled application for receiving user input of a search term. The search term is used to build a URL that is communicated to a web-accessible E-mail service. A browser is launched to display at least one page resulting from the communication of the URL.

This application is a divisional of U.S. Utility patent application Ser.No. 11/223,138 filed Sep. 12, 2005 and entitled “System and Method forProviding Improved Electronic Mail Accessibility,” which claims priorityto U.S. Provisional Patent Application No. 60/637,978 filed Dec. 20,2004, the entire disclosures of which are incorporated herein byreference.

This application includes material which is subject to copyrightprotection. The copyright owner has no objection to the facsimilereproduction by anyone of the patent disclosure, as it appears in thePatent and Trademark Office files or records, but otherwise reserves allcopyright rights whatsoever.

FIELD OF THE INVENTION

The present invention relates in general to the field of mail-enabledapplications, and in particular to systems and methods for deliveringfeatures that provide improved functionality and/or user interfacing insuch applications.

BACKGROUND OF THE INVENTION

Web-accessible E-mail services such as Yahoo! Mail, provided by Yahoo!,Inc. of Sunnyvale, Calif., have a large user base throughout the world.The majority of users access such services through a web browser, butthere are millions of users who use mail-enabled applications employingthe Post Office Protocol (“POP”) to access their E-mail accounts withsuch services. Such mail-enabled applications include, e.g., OUTLOOK andOUTLOOK EXPRESS published by Microsoft Corporation of Redmond, Wash. Inaddition, a large number of users spend a significant amount of timeusing mail-enabled applications when at work to access work-relatedE-mail. It is common for such users to use these mail-enabledapplications all day for work purposes, and periodically check personalmail accounts in a browser window. In both cases, it is desirable toincrease the accessibility of the web-accessible E-mail service to theseusers, while extending features of such services to the desktop.

One such feature is SPAM control for web-accessible E-mail users who usePOP to retrieve E-mail. SPAM remains a huge problem and mostweb-accessible E-mail services do not provide adequate SPAM-controlfeatures, particularly to users who use the POP protocol to receiveE-mail.

SPAM is one of the greatest challenges facing users of web-accessiblemail services such as Yahoo! Mail. Yahoo! Mail uses tools such asSpamGuard and SpamGuard Plus to detect incoming SPAM. These toolscombine various functionality, including IP blocking, content analysisand filtering, and virus blocking. This has proven to be an effectivesolution for most Yahoo! users that use Yahoo! Mail through the webinterface. Effectiveness (% of SPAM correctly caught) is estimated to be95% for SpamGuard and 97% for SpamGuard Plus. SpamGuard Plus includesBayesian filtering which allows users to train the system to predictwhat is SPAM given the user's preferences.

However, SpamGuard and related solutions are conventionally unavailableto users that use POP to retrieve their E-mail from their mail-enabledapplications.

Mail-enabled applications that use POP to retrieve a user's E-mail fromweb-accessible mail services typically retrieve both “good” mail andmessages that have been identified as SPAM by SPAM-filtering softwareoperated by the mail service or other third party. Even though the SPAMmessages may have been marked as SPAM by such software, there is nologic to route these messages to an appropriate folder on the user'scomputer. As a response, many users of web-accessible E-mail serviceshave their settings set to not download their SPAM email. Thus, for theuser to check for false-positives, i.e., messages that have beenincorrectly identified as SPAM, the user typically must remember toaccess their account via a browser, rather than using POP, to reviewtheir Bulk folder. Few users will go to such lengths to check forfalse-positives, resulting in the non-delivery of some legitimatemessages.

Another feature that leaves room for improvement is the built-in searchfunctionality typically provided in mail-enabled applications such asOUTLOOK and OUTLOOK EXPRESS. Such search functionality provides a weakuser experience in that it is relatively slow and inflexible. GoogleInc., of Mountain View, Calif., recently launched a beta applicationcalled GOOGLE DESKTOP which indexes local files—including E-mailmessages stored by OUTLOOK and OUTLOOK EXPRESS. A number of smallercompanies have begun to offer powerful desktop search tools. Mail searchremains one of the key features in these desktop search tools, but manymail-enabled applications do not allow the mail search features ofdesktop search tools to access the mail messages stored therein.

SUMMARY OF THE INVENTION

Accordingly, the present invention is directed to a system and methodfor providing improved E-mail accessibility that substantially obviatesone or more of the problems due to limitations and disadvantages of therelated art.

An exemplary embodiment of the present invention provides users ofweb-accessible E-mail services with improved access to their E-mailmessages.

In one embodiment, access to a search tool is provided to users of aweb-accessible electronic mail service by software which integrates witha mail-enabled application running on a user's client machine. Thesoftware displays a field within a user interface of the mail-enabledapplication for receiving user input of a search term. The search termis used to build a URL that is communicated to a web-accessible E-mailservice. A browser is launched to display at least one page resultingfrom the communication of the URL.

Additional features and advantages of the invention will be set forth inthe description which follows, and in part will be apparent from thedescription, or may be learned by practice of the invention, which isset forth in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a firtherunderstanding of the invention and are incorporated in and constitute apart of this specification, illustrate embodiments of the invention andtogether with the description serve to explain the principles of theinvention, and not limit same, which is set forth in the appendedclaims.

In the drawings:

FIG. 1 is a block diagram illustrating data flow in accordance with anembodiment of the invention.

FIG. 2 is a screenshot illustrating a toolbar in accordance with anembodiment of the invention.

FIG. 3 is a screenshot illustrating a toolbar in accordance with anotherembodiment of the invention.

FIG. 4 is a flow diagram illustrating the fetch and processing of a datafeed in accordance with an embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to embodiments of the presentinvention, examples of which are illustrated in the accompanyingdrawings.

Improved functionality and user interface features are provided formail-enabled applications. In this respect, “mail-enabled application”as used herein means a software application which uses a mail protocol,including but not limited to POP, SMTP, or IMAP, to communicate with amail server. In a first embodiment, users of a web-accessible E-mailservice can receive the benefit of the SPAM-control features provided bythat E-mail service even though the users access their E-mails via amail-enabled application. This functionality can be provided via avariety of means, including, without limitation, a toolbar, plug-in,Dynamic Link Library (“.DLL”), or the like, which integrates with andadds features or finctionality to, or enhances existing features and/orfunctionality present in, an existing mail-enabled application.Alternatively, this embodiment can be provided by integrating thefeatures or functionality into a mail-enabled application at thesource-code level.

In an exemplary embodiment, a toolbar is provided that loads as a .DLLwhen the mail-enabled application is run on the user's client machine orwhen that machine's operating system boots. The toolbar adds to themail-enabled application's functionality by scanning each E-mail messagefor a bulk-indicating header. Such a header can be inserted by SPAMdetection software on the E-mail server when an E-mail is identified asSPAM. Such messages are then routed to the user's bulk folder on theirclient machine automatically. Although the current embodiment isdescribed primarily with respect to a header inserted by SPAM-detectingsoftware, it will be apparent to one skilled in the art that otherheaders or indicia inserted into the E-mail, including withoutlimitation headers inserted by SPAM-detecting software running on aserver, router, gateway, the user's desktop, or elsewhere, may bedetected and used as a basis to re-route a message to the user's bulkfolder. Table 1, below, is an example of an E-mail header which includesa bulk-indicating line that may be detected in accordance with oneembodiment: TABLE 1 X-Apparently-To: xxxtest.tiere003@btinternet.com via217.12.12.60; Mon, 18 Oct 2004 16:05:00 X-YahooFilteredBulk:216.136.173.32 X-Originating-IP: [216.136.173.32] Return-Path:<xxxtest.tiere003@btinternet.com> Received: from 216.136.173.32 (HELOsmtp012.mail.yahoo.com) (216.136.173.32) by mta802.mail.ukl.yahoo.comwith SMTP; Mon, 18 Oct 2004 16:05:00 +0000 Received: from unknown (HELOvargon) (xxxtest.tiere003@btinternet. com@63.172.193.57 with login) bysmtp012.mail.yahoo.com with SMTP; 18 Oct 2004 16:04:58 −0000 Message-ID:<003001c4b52c$36eaea10$4c4015ac@vargon> From: “Test Account”<xxxtest.tiere003@btinternet.com> To: <xxxtest.tiere003@btinternet.com>Subject: Fw: No cost Laptop Date: Mon, 18 Oct 2004 12:04:55 −0400MIME-Version: 1.0 Content-Type: multipart/alternative;boundary=“----=_NextPart_000_002D_01C4B50A.AF515560” X-Priority: 3X-MSMail-Priority: Normal X-Mailer: Microsoft OUTLOOK EXPRESS6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

In the example header provided in Table 1, the line“X-YahooFilteredBulk: 216.136.173.32” is a bulk-indicating line that hasbeen inserted by SPAM-detecting software running on an E-mail serveroperated by a web-accessible E-Mail provider.

FIG. 1 is a block diagram illustrating data flow within this firstembodiment. In FIG. 1, each piece of newly downloaded E-mail 100 isscanned to determine whether a bulk header, and/or other spam-indicatingheader, is present in the E-mail (Block 105). If no such header exists,and if toolbar 130 is not operating in “Advanced” mode, E-mail 100 isrouted to the user's inbox 155 within the mail-enabled application 150.In this respect, the toolbar of this embodiment preferably provides twomodes of operation. The first is referred to herein as “All-in-oneanti-spam mode” or “advanced mode” and the other is referred to hereinas “Limited anti-spam mode” or “Simple mode.” In Simple mode, toolbarsoftware 130 looks for a bulk-indicating header in E-mail 100, and ifone is found, moves that message to the user's Bulk Mail folder 160unless the sender is on the an approved senders list, or “whitelist”110; if the sender is on whitelist 110, the toolbar 130 ceasesprocessing message 100 and routes it to Inbox 155. In Advanced mode,toolbar 130 first performs the Simple mode check. However, if the senderis not on whitelist 110 and message 100 does not contain abulk-indicating header 105, toolbar 130 performs an Advanced check 120,which preferably includes passing the text of message 100 toSPAM-detecting software. Exemplary SPAM-detecting software includes, butis not limited to, SpamAssassin or other software that uses a rule-basedalgorithm and a Bayesian algorithm to determine whether or not message100 is SPAM. If such software indicates that message 100 is SPAM,message 100 is moved to Bulk Folder 160.

Thus, with continued reference to FIG. 1, if E-mail 100 does not containa bulk header and toolbar 130 is operating in “advanced” mode, theE-mail is checked again to confirm that it is not SPAM (Block 120) andthen routed to the user's inbox 155 or a user-selected folder 160 asappropriate based on the results. If the E-mail message contains a bulkheader, the sender is compared to the whitelist (Block 110). If thesender is on the whitelist, the E-mail is routed to the user's inbox155; otherwise, the E-mail is routed to the user-specified bulk mailfolder 160. Although the functionality is described with respect tonewly downloaded E-mails, it should be apparent to one skilled in theart that periodic scanning of the user's inbox, or a subset thereof,could be substituted therefor without departing from the spirit or thescope of the invention.

In one embodiment, users can manually mark individual messages ascontaining SPAM or being SPAM-free. When a user indicates that a messagewas incorrectly identified as SPAM, the message is moved to the user'sInbox 155 and the sender is added to the Approved Sender list 110.Similarly, if the user marks a message as SPAM, it is moved to Bulkfolder 160 and the sender is removed from Approved Sender list 110.

When the user manually indicates the status of an E-mail, this can addto the training of a local Bayesian filter. The local Bayesian filterallows toolbar 130 to more effectively identify similar messages in thefuture as SPAM or not, even if the SPAM-detecting software fails to doso. Bayesian filtering is the process of using Bayesian statistics toattempt to remove noise from a corrupted signal. Bayesian statistics isa paradigm of statistics that treats probabilities as estimates ofuncertainty and derives methods of statistical inference from decisiontheory. Appropriate Bayesian filters include, without limitation thoseavailable under the open-source Apache license under the nameSpamAssassin. To ensure that the Bayesian filter can identify mail asSPAM or not SPAM properly, a pre-trained filter database can be providedwith toolbar 130 when first supplied to the user. Other learning filtersand/or filters which apply probability theory to classify E-mail can beused as an alternative or in addition to the Bayesian filter. Such afilter can be implemented as part of step 120 of FIG. 1.

Another aspect of the invention that can be utilized alone or incombination with the anti-SPAM aspect described above allows users toaccess powerful mail search tools from within a mail-enabledapplication. Like the anti-SPAM functionality, this advanced E-mailsearch functionality can be provided in the form of a toolbar, plug-in,.DLL, or other means for adding features or functionality to an existingmail-enabled application, or alternatively can be provided in the formof features or functionality that are incorporated into a mail-enabledapplication at the source-code level.

The advanced search functionality of this embodiment allows users tosearch E-mail messages, attachments, contacts, calendar entries, notes,Yahoo! Instant Messenger archives, and/or other messaging-relatedrepositories, from within a mail-enabled application. In the embodimentsillustrated in FIGS. 2 and 3, a user can access the advanced searchfunctionality via a toolbar that is integrated into or added onto amail-enabled application.

The functioning of the advanced search feature may differ based uponwhether the feature is implemented as a toolbar for an applicationwithout a usable Application Program Interface (API), such as OUTLOOKEXPRESS, or for an application with such an API, such as OUTLOOK. Forthe former, as illustrated in FIG. 3, the user can select from aplurality of search options by choosing an appropriate entry from a listof options, the list preferably being displayed when the user clicks onOptions button 305. When the user enters a search term into search box310 on the toolbar 300 and hits ENTER, clicks the search button 320, orselects a previous search term listed in dropdown menu item 315, theprogram can build a URL from different pieces of search information. Thepieces of information that are used are defined by an XML feed,discussed in more detail below. Such pieces of information can include,but are not limited to, a literal portion of a URL such as“http://www.yahoo.com,” a “value” passed in the feed, the search type tobe performed, the text from the search box, and a registry value. Oncethe full URL is constructed, the toolbar can call the WindowsShellExecute( ) API Function Call, or other similar function callappropriate to the current operating system to launch a browser withthat URL, the web browser requesting and displaying the URL.

FIG. 2 illustrates an embodiment of the advanced search feature whichcan be implemented in connection with mail-enabled applications having ausable API, such as OUTLOOK. In this embodiment, the user can selectfrom a plurality of search options by choosing an appropriate entry froma list of options, the list preferably being displayed when the userclicks on Options button 205. The user chooses the search terms byentering the terms in text box 210 or selecting a previously executedsearch term from dropdown box 315 on toolbar 300. The user can thenpress the ENTER key or click search button 220. A URL is then built fromthe search information in a similar manner as set forth above, and oncethe full URL is constructed, the toolbar can call the WindowsShellExecute( ) API function call or other similar API function call tolaunch a browser with that URL.

Two classes of toolbar embodiments will now be described. Theseembodiments are applicable to implementation of both the anti-SPAMaspects and the advanced search aspects described above. The firstembodiment is a toolbar that resides within Microsoft OUTLOOK. Thesecond embodiment is a toolbar that resides within Microsoft OUTLOOKEXPRESS. The functionality provided by each embodiment is similar,however the manner in which each of these exemplary embodiments isimplemented is quite different. These embodiments are intended to beexemplary, and should not be read as limiting the invention to thespecific embodiments described herein.

Both exemplary toolbar embodiments are “feed generated,” meaning thatbutton availability and placement can be determined by an external,web-based data source such as an XML data feed sent from a centralserver to the user's client machine. Table 2 is an exemplary XML feed.TABLE 2 <?xml version=“1.0” encoding=“utf-8” ?> <toolbar bid=“ol”version=“1.0”>  <fvs>   <fv n=“intl” v=“us”/>   <fv n=“iu”v=“us.yimg.com/i/tb/ol”/>   <fv n=“e1”v=“bulk_junk_spam_deleted_trash_outbox_sent ”/>   <fv n=“hver”v=“10001”/>   <fv n=“SW1” v=“You must supply a valid email address”/>  <fv n=“SW2” v=“An account with that email address already exists.Please try adding a different account.”/>   <fv n=“SW3” v=“There was anerror creating the account in %s. Please try again or create the accountmanually.”/>   <fv n=“SW4” v=“Sorry, the Yahoo! ID and/or passwordprovided are invalid. Please make sure you have entered the correctinformation.”/>   <fv n=“SW5” v=“The following accounts weresuccessfully added:”/>   <fv n=“OL1” v=“Yahoo! Toolbar for OUTLOOK”/>  <fv n=“OL2” v=“You must restart OUTLOOK for changes to take effect.Restart now?”/>   <fv n=“PW1” v=“Please wait while your messages areprocessed...”/>  </fvs>  <btns>   <btn bid=“yhoo” tt=“Yahoo!” t=“0”s=“512” i=“logo.bmp” u=“_4_%http://www.yahoo.com/”>    <ps><p n=“r”v=“0”/></ps>   </btn>   <btn bid=“opt” tt=“Options” t=“1” s=“0”i=“opt.bmp”>    <ps><p n=“r” v=“0”/></ps>    <mis>     <mi bid=“refresh”tt=“Refresh Toolbar” u=“_6” s=“32768”/>     <mi bid=“clearsh” tt=“ClearRecent Searches” u=“_39” s=“32768”/>     <mi bid=“pop” tt=“Add POPAccounts...” u=“_101_1” s=“32768”/>     <mi bid=“prefs”tt=“Preferences...” u=“_101_0” s=“32768”/>     <mi bid=“sep” tt=“−”s=“32768”/>     <mi bid=“about” tt=“About Yahoo! Toolbar” u=“_7”s=“32768”/>     <mi bid=“help” tt=“Help” u=“_4_%http://help.yahoo.com/”s=“32768”/>     <mi bid=“uninst” tt=“Uninstall Yahoo! Toolbar” u=“_8”s=“32768”/>    </mis>   </btn>   <btn bid=“ebox” t=“9” s=“0”u=“_4_%http://search.yahoo.com/search?fr=ytol- _$REG_sc_%&amp;p=_ebox”>   <ps><p n=“w” v=“150”/><p n=“r” v=“0”/></ps>   </btn>   <btnbid=“srch” tt=“Search Web” t=“1” s=“0”>    <mis>     <mi bid=“srch1”tt=“Search Web” u=“_103_srch_1_SearchWeb_nourl_noimage_ebox_2_notext_(——)4_%http://search.yahoo.com/search?fr=ytol-_(—)$REG_sc_%&amp;p=_ebox_noimage” s=“32768”>       <ps><p n=“i”v=“srcht”/><p n=“t” v=“1”/><p n=“v” v=“1”/></ps>     </mi>     <mibid=“srch2” tt=“Search Yahoo! Mail” u=“_103_srch_1_Search Yahoo!Mail_nourl_noimage_ebox_2_notext_(——)4_%http://mrd.mail.yahoo.com/search?find=1&amp;s=_ebox_noimage” s=“32768”>       <ps><p n=“i” v=“srcht”/><p n=“t”v=“1”/><p n=“v” v=“0”/></ps>     </mi>     <mi bid=“srch3” tt=“SearchLocal Mail” u=“_103_srch_1_Search LocalMail_nourl_noimage_ebox_2_notext_(——)100_ebox_noimage” s=“32768”x=“16384”>       <ps><p n=“exf” v=“_41_ebox”/></ps>     </mi>    </mis>   <ps><p n=“r” v=“0”/></ps>   </btn>   <btn bid=“spam” tt=“Spam” t=“0”s=“67108864” i=“spam.bmp” u=“_102_1”>     <ps><p n=“r” v=“0”/></ps>  </btn>   <btn bid=“nospam” tt=“Not Spam” t=“0” s=“0” i=“nospam.bmp”u=“_102_0”>     ps><p n=“r” v=“0”/></ps>   </btn>   <btn bid=“yma”tt=“Yahoo! Mail” t=“2” s=“0” u=“_4_%http://mail.yahoo.com/”>    <ps>    <p n=“at” v=“$MAILCOUNT_% new message(s)”/>     <p n=“t0” v=“Yahoo!Mail”/>     <p n=“t1” v=“Yahoo! Mail (%d)”/>    </ps>    <mis>     <mibid=“yma1” tt=“Compose a Message”u=“_4_%http://mrd.mail.yahoo.com/compose” s=“32768”/>     <mi bid=“yma2”tt=“Send a Greeting” u=“_4_%http://greetings.yahoo.com/” s=“32768”/>    <mi bid=“yma3” tt=“−” s=“32768”/>     <mi bid=“yma9” tt=“AddressBook” u=“_4_%http://address.yahoo.com/” s=“32768”/>     <mi bid=“yma10”tt=“Calendar” u=“_4_%http://calendar.yahoo.com/” s=“32768”/>     <mibid=“yma11” tt=“Notepad” u=“_4_%http://notepad.yahoo.com/” s=“32768”/>    <mi bid=“yma12” tt=“−” s=“32768”/>     <mi bid=“yma13” tt=“Help”u=“_4_%http://help.yahoo.com/help/mail/” s=“32768”/>    </mis>   </btn>  <btn bid=“add” tt=“Address Book” t=“2” s=“0”u=“_4_%http://address.yahoo.com/”>    <mis>     <mi bid=“add1” tt=“AddContact” u=“_4_%http://address.yahoo.com/yab?A=a” s=“32768”/>     <mibid=“add2” tt=“Distribution List”u=“_4_%http://address.yahoo.com/yab?A=z” s=“32768”/>     <mi bid=“add3”tt=“Options” u=“_4_%http://address.yahoo.com/yab?A=o” s=“32768”/>   </mis>   </btn>   <btn bid=“cal” tt=“Calendar” t=“2” s=“0”u=“_4_%http://calendar.yahoo.com/”>    <mis>     <mi bid=“cal1” tt=“AddEvent” u=“_4_%http://calendar.yahoo.com/?v=5” s=“32768”/>     <mibid=“cal2” tt=“Add Task” u=“_4_%http://calendar.yahoo.com/?v=33”s=“32768”/>     <mi bid=“cal3” tt=“Add Birthday”u=“_4_%http://calendar.yahoo.com/?v=5&amp;evt_type=13” s=“32768”/>    <mi bid=“cal4” tt=“−” s=“32768”/>     <mi bid=“cal5” tt=“Day”u=“_4_%http://calendar.yahoo.com/?v=61” s=“32768”/>     <mi bid=“cal6”tt=“Week” u=“_4_%http://calendar.yahoo.com/?v=1” s=“32768”/>     <mibid=“cal7” tt=“Month” u=“_4_%http://calendar.yahoo.com/?v=2” s=“32768”/>    <mi bid=“cal8” tt=“Year” u=“_4_%http://calendar.yahoo.com/?v=3”s=“32768”/>     <mi bid=“cal9” tt=“−” s=“32768”/>     <mi bid=“cal10”tt=“Options” u=“_4_%http://calendar.yahoo.com/yc/?v=70” s=“32768”/>    <mi bid=“cal11” tt=“Edit Time Guides”u=“_4_%http://calendar.yahoo.com/?v=95” s=“32768”/>    </mis>   </btn>  <btn bid=“not” tt=“Notepad” t=“2” s=“0”u=“_4_%http://notepad.yahoo.com/”>    <mis>     <mi bid=“not1” tt=“NewNote” u=“_4_%http://notepad.yahoo.com/?v=161” s=“32768”/>     <mibid=“not2” tt=“New Folder” u=“_4_%http://notepad.yahoo.com/?v=168”s=“32768”/>     <mi bid=“not3” tt=“−” s=“32768”/>     <mi bid=“not4”tt=“Options” u=“_4_%http://notepad.yahoo.com/?v=165” s=“32768”/>   </mis>   </btn>   <btn bid=“log” tt=“Sign In” t=“0” s=“0” u=“_104_1”>    <ps><p n=“r” v=“0”/></ps>   </btn>   <btn bid=“out” tt=“Sign Out”t=“0” s=“0” u=“_104_0”>    <ps><p n=“r” v=“0”/></ps>   </btn>  </btns></toolbar>

As Table 2 illustrates, an XML feed preferably includes awell-structured set of information that defines the functionality to beprovided by the toolbar. By way of example, without intending to limitthe present invention, in Table 2 the <toolbar> and </toolbar> tagsindicate that the information contained between those tags correspondsto a toolbar. Within the toolbar tags, the <fvs> and </fvs> tagsindicate the start and end of a feed value definitions portion of theXML feed. Feed values are optional information that can be usedthroughout the toolbar, such as error messages or global values, such asa base uniform resource locator (“URL”). For example, the <fv n=“SW1”v=“You must supply a valid email address”/>tag sets up a global feedvalue whose name (“n”) is “SW1”, and with which the value (“v”) of “Youmust supply a valid email address” is associated. If an error occurs, anerror handler can refer to the SW1feed value to determine appropriatetext to be displayed to the user.

Referring again to Table 2, the <btns> and </btns> tags indicate thestart and end of button definitions portion of the XML feed. Buttondefinitions are optional in the XML feed, but where used, the <btn>definition can include a variety of attributes typically associated witha button, including a button ID (“bid”), icon (“i”), style (“s”), title(“tt”), URL (“u”), and extended style (“x”). Each button can also haveoptional child elements, or definitions, including parameters (“ps”) andindividual parameter attributes (“p”). Each parameter attribute caninclude a value (“v”) and a convert flag (“cnv”). When these tags arecombined, such as in the “<btn bid=“ebox” t=“9” s=“0”u=“_(—)4_%http://search.yahoo.com/search?fr=ytol-_$REG_sc_%&amp;p=_ebox”><ps><pn=“w” v=“150”/><p n=“r” v=“0”/></ps></btn>” series of tags, the tagsdefine a button whose ID is “ebox”, of type 9, style 0, with which a URLof “http://search.yahoo.com/search?fr=ytol-_$REG_sc_%&amp;p=_ebox” isassociated. Although a URL to an external server is included in thisexample, it should be apparent to one skilled in the art that areference to a toolbar function, operating system API call, or the likecan be substituted therefor without departing from the spirit or thescope of the invention.

Each button can also include optional menu item definitions (“mis”).Such menu items can, for example, be used to generate a drop-down list.Each defined menu item (“mi”) can include attributes typicallyassociated with a menu item or other user interface element, including abutton identifier (“bid”), icon (“i”), style (“s”), title (“tt”), type(“t”), URL (“u”) and extended style (“x”).

An XML data feed can be transmitted from a central server to a clientmachine on a regular basis or in response to a triggering event such asthe loading of the user's mail-enabled application. This enables theprovider of the external web-based data source to add or remove buttonsfrom the toolbar for all users, or a subset of users, on an ongoingbasis without modification of the code running on the user side andwithout requiring the user to install an update. The fetch of the datafeed and processing of the same preferably operate as follows, asillustrated in FIG. 4. In Block 400, the toolbar looks for a cached XMLfeed on the local disk and loads it if found (Block 405). In Block 410,a request for a feed is made by the toolbar to a central server (“feedserver”) upon a triggering event such as the passage of time, loading ofthe mail-enabled application, or the like. In Block 415, the feed servergenerates a feed and returns it to the client machine. The toolbarsoftware pre-processes the feed to expand any directives for caching ofspecific buttons in Block 420. The expanded feed is then stored on thelocal disk for later retrieval. If button caching information is present(Block 425), the button graphics and other information can be downloadedand stored locally (Block 430). The toolbar is then rebuilt based on thenewly expanded feed such that it takes on the configuration as definedin the new feed. Such configuration may include, e.g., the placement andfunctions associated with buttons on the toolbar, the placement andfunctions associated with search boxes on the toolbar, the placement andfunction of drop-down boxes on the toolbar, and the placement ofgraphics and text on the toolbar.

Further details as to how to implement an XML data feed from a centralserver and use the same to configure features in an application runningon a client machine can be found in commonly-owned U.S. PatentApplication No. 60/681,458 entitled “Systems And Methods For ProvidingFeatures And User Interface In Network Browsing Applications,” filed May17, 2005, the entire disclosure of which is incorporated herein byreference.

To provide the feed features, as well as new mail alerts, a user ID ofthe user currently using the toolbar (e.g. the user's Yahoo! ID) can beutilized by the toolbar. The toolbar can automatically log in the userto the web-accessible E-mail service if the user provides a user ID andpassword, or other details sufficient for identification of the user.Such user IDs and passwords can be provided, for example, as part of thetoolbar installation process, during the first instantiation of thetoolbar, or each time the toolbar is loaded Since it is presentlypreferred to allow only a single user ID to be logged in with apersistent state on a single Windows session, and to ensurecompatibility with other Yahoo! applications, the toolbar can obtain thecurrently valid login credentials or other user identificationinformation from another application such as Yahoo! Messenger, ifavailable. This helps to ensure a more seamless experience betweensoftware products and prevents the confusion that might occur if thetoolbar account replaced any other currently-logged-in account.

With respect to the embodiment illustrated in FIG. 2, Microsoft OUTLOOKpermits functionality extension of OUTLOOK through the OUTLOOK ObjectModel (OOM). Utilizing OOM, software can add a toolbar to OUTLOOK'sexisting toolbars, e.g., by embodying the toolbar functionality in a.DLL and registering the .DLL so that it loads when, or just after,OUTLOOK loads. The OOM also provides high-level access to OUTLOOK'sE-mail stores, including a user's inbox. Unfortunately, the dataprovided by OOM is often tainted or may trigger OUTLOOK security alertswhen accessed. To address this issue, E-mail can be accessed viaExtended MAPI which is not subject to the limitations of the OOM.

OUTLOOK EXPRESS, on the other hand, presently provides no API orinterface for easily adding a toolbar to its existing toolbars. Thus, asan alternative to using the Extended MAPI or other API as discussedabove, code can be injected into the OUTLOOK EXPRESS process to alterits functionality from within, thereby providing an additional toolbar.Custom controls can be created to provide some aspects of this toolbarin order to ensure compatibility with OUTLOOK EXPRESS.

In one exemplary embodiment, a toolbar can be integrated intomail-enabled applications which lack a usable API, such as OUTLOOKEXPRESS, via an executable such as an .exe file which runs in thebackground on the client machine and constantly watches for themail-enabled program to start up. When such start up is detected, theexecutable installs a hook into the mail-enabled application's process.The hook can be implemented in a DLL. Once the hook is installed, thetoolbar is able to access the application's memory areas and objectsdirectly via operating system APIs. Thus, for example, to add thetoolbar, one can locate existing toolbars in the mail-enabledapplication and provide code to inject another toolbar therein. Toprevent a crash, any clicks or actions resulting from this injectedtoolbar typically must be trapped before the mail-enabled application“sees” them since the toolbar is unexpected by the application. Thus,the software in accordance with this embodiment preferably filters outany messages generated by such clicks or actions so that themail-enabled application is not aware of the software's presence in themail-enabled application's memory space.

It is noted that Microsoft does provide an application programmerinterface (“API”) which permits access to OUTLOOK EXPRESS' messagestore. By providing code which interfaces with this API, messages in theOUTLOOK EXPRESS “Local Folders” can be accessed. However, this API doesnot presently permit access to other E-mail archives, such as thoseaccessible via IMAP or HTTP.

In addition to providing the SPAM-processing and search functionsdescribed above, the disclosed toolbars can provide a platform to extendother features to the desktop. These include, e.g., web search andsynchronization of address book and calendar entries. Synchronization ofaddress book and calendar entries can maintain the same contacts and/orcalendar entries between mail-enabled desktop applications suchOUTLOOK/OUTLOOK EXPRESS and web-accessible address books such as theYahoo! Address Book. The “Address Book” and “Calendar” buttons shown onthe toolbar in FIGS. 2 and 3 can be used to launch the web-basedproperties they correspond to, and options can be listed on eachbutton's dropdown menu to quickly perform certain tasks in theweb-accessible address book such as Add Contact, Add Task, and New Note.

While the invention has been particularly shown and described withreference to preferred embodiments thereof, it will be understood bythose skilled in the art that various changes in form and details may bemade therein without departing from the spirit and scope of theinvention.

1. A method of providing access to a search tool to a user of aweb-accessible electronic mail service, comprising: providing softwarewhich integrates with a mail-enabled application running on a user'sclient machine, said software operating to: display a field within auser interface of said mail-enabled application for receiving user inputof a search term; use said search term to build a URL; communicate saidURL to a web-accessible E-mail service; and, launch a browser to displayat least one page resulting from said communication of said URL.
 2. Themethod of providing access to a search tool in accordance with claim 1,wherein said page resulting from said communication comprises results ofa search of said user's messaging-related information stored on a serverassociated with said web-accessible E-mail service.
 3. The method ofproviding access to a search tool in accordance with claim 2, whereinsaid messaging-related information comprises at least one of: saiduser's E-mail messages, attachments to said user's E-mail messages, saiduser's contacts, said user's calendar entries, said user's notes, anarchive of said user's instant messaging activities.
 4. The method ofproviding access to a search tool in accordance with claim 1, whereinsaid software is a toolbar.
 5. The method of providing access to asearch tool in accordance with claim 1, wherein said software is aplugin to said mail-enabled application.
 6. The method of providingaccess to a search tool in accordance with claim 1, wherein saidsoftware is integrated into said mail-enabled application at asource-code level.
 7. The method of providing access to a search tool inaccordance with claim 1, wherein said software comprises a toolbar thatis configured using a data feed from a remote feed server.
 8. The methodof providing access to a search tool in accordance with claim 7, whereinsaid data feed is an XML data feed.
 9. The method of providing access toa search tool in accordance with claim 1, wherein said software furtheroperates to display a drop-down list of previously executed search termsin said mail-enabled application and receive a user selection of atleast one search term from said list.
 10. The method of providing accessto a search tool in accordance with claim 1, wherein said softwareinterfaces with said mail-enabled application via an application programinterface of said mail-enabled application.
 11. The method of providingaccess to a search tool in accordance with claim 1, wherein saidsoftware further operates to use information defined by a data feed tobuild said URL.
 12. The method of providing access to a search tool inaccordance with claim 1, wherein said software further operates to use aliteral URL portion to build said URL.
 13. The method of providingaccess to a search tool in accordance with claim 1, wherein saidsoftware further operates to use an identification of a type of searchto be performed to build said URL.
 14. The method of providing access toa search tool in accordance with claim 1, wherein said software furtheroperates to use a registry value to build said URL.
 15. Acomputer-implemented user interface for providing access to a searchtool to a user of a web-accessible electronic mail service, comprising:a computer program which integrates with a mail-enabled applicationrunning on a user's client machine, said computer program operating to:use a data feed received from a remote server to configure a toolbar;display said toolbar within said mail-enabled application, said toolbarincluding a field for receiving user input of a search term; use saidsearch term to build a URL; communicate said URL to a web-accessibleE-mail service; and, launch a browser to display results of a search ofsaid user's messaging-related information stored on a server associatedwith said web-accessible E-mail service.
 16. The computer-implementeduser interface for providing access to a search tool in accordance withclaim 15, wherein said data feed is an XML data feed.
 17. Thecomputer-implemented user interface for providing access to a searchtool in accordance with claim 15, wherein said computer program furtheroperates to display a drop-down list of previously executed search termsin said mail-enabled application and receive a user selection of atleast one search term from said list.
 18. The computer-implemented userinterface for providing access to a search tool in accordance with claim15, wherein said computer program further operates to use informationdefined by said data feed to build said URL.